package gui.gestion.forms;

import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;

import objetosNegocio.Almacen;


public class AlmacForm extends JPanel{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JTextField idAlmacen;
	private JTextField nombreAlmacen;
	private JCheckBox activoAlmacen;
	private JTextField telefono;
	private JTextField email;
	private JTextField direccion;
	private JTextField poblacion;
	private JTextField codPostal;
	
	/**
	 * Default constructor
	 */
	public AlmacForm(){
		this.setBorder(new TitledBorder("Almacen"));
		this.setLayout(new GridLayout(8,2));
		this.setMinimumSize(new Dimension(350,300));
		this.setPreferredSize(new Dimension(350,300));
		buildAlmacForm();
		
	}
    
	/**
	 * Builds the form
	 */
	private void buildAlmacForm() {
		JLabel l = new JLabel("ID", JLabel.TRAILING);
        this.add(l);
        idAlmacen = new JTextField(10);
        l.setLabelFor(idAlmacen);
        idAlmacen.setEditable(false); //No debe poder ser modificado
        this.add(idAlmacen);
        
		JLabel l2 = new JLabel("Nombre", JLabel.TRAILING);
        this.add(l2);
        nombreAlmacen = new JTextField(80);
        l2.setLabelFor(nombreAlmacen);
        this.add(nombreAlmacen); 
        
		JLabel l3 = new JLabel("Activo ?", JLabel.TRAILING);
        this.add(l3);
        activoAlmacen = new JCheckBox();
        l3.setLabelFor(activoAlmacen);
        this.add(activoAlmacen);
        
        JLabel l4 = new JLabel("Telefono", JLabel.TRAILING);
        this.add(l4);
        telefono = new JTextField(15);
        l4.setLabelFor(telefono);
        this.add(telefono);
        
        JLabel l5 = new JLabel("Email", JLabel.TRAILING);
        this.add(l5);
        email = new JTextField(50);
        l5.setLabelFor(email);
        this.add(email);
        
        JLabel l6 = new JLabel("Direccion", JLabel.TRAILING);
        this.add(l6);
        direccion = new JTextField(15);
        l6.setLabelFor(direccion);
        this.add(direccion);
        
        JLabel l7 = new JLabel("Poblacion", JLabel.TRAILING);
        this.add(l7);
        poblacion = new JTextField(15);
        l7.setLabelFor(poblacion);
        this.add(poblacion);
        
        JLabel l8 = new JLabel("Codigo Postal", JLabel.TRAILING);
        this.add(l8);
        codPostal = new JTextField(10);
        l8.setLabelFor(codPostal);
        this.add(codPostal);
		
	}
	
	/**
	 * Fills the form with almacen info
	 * @param cli
	 */
	public void fillAlmacForm(Almacen alm){

		this.nombreAlmacen.setText(alm.getNombre());
		this.activoAlmacen.setSelected(alm.getActivo());
		this.idAlmacen.setText(Integer.toString(alm.getId()));
		this.codPostal.setText(alm.getCodPostal());
		this.direccion.setText(alm.getDireccion());
		this.email.setText(alm.getEmail());
		this.poblacion.setText(alm.getPoblacion());
		this.telefono.setText(alm.getTelefono());
		
	}
	
	/**
	 * Retrieves a Almacen object with the info from the form
	 * @return
	 */
	public Almacen getClientObject(){
		Almacen ret = new Almacen();
		if(this.activoAlmacen.getSelectedObjects() != null)	ret.setActivo(true);
		else												ret.setActivo(false);
		
		try{
			ret.setId(Integer.parseInt(this.idAlmacen.getText()));	
		}catch (NumberFormatException e){}
		
		ret.setNombre(this.nombreAlmacen.getText());
		ret.setCodPostal(this.codPostal.getText());
		ret.setDireccion(this.direccion.getText());
		ret.setEmail(this.email.getText());
		ret.setPoblacion(this.poblacion.getText());
		ret.setTelefono(this.telefono.getText());

		return ret;
	}
	

}
